/**
 * @file sauvegarde.h
 * Sauvegarde et charge l'avancé du joueur
 */
#ifndef _SAUVEGARDE_H
#define _SAUVEGARDE_H

#include <iostream>
#include "jeu.h"
#include "tableau_arme.h"

/**
@brief creation d'une sauvegarde ou remplacement de l'ancien
@param jeu* j, caractere constante filenameHero,caractere constante filenameNiv,caractere constante filenameArme,caractere constante filenameMonstre
@return none
*/
void creerSauvegarde(jeu* j,const char filenameHero[],const char filenameNiv[],const char filenameArme[],const char filenameMonstre[]);

/**
@brief creation d'une sauvegarde du hero
@param Hero* h, caractere constante filename
@return none
*/
void creerSauvegardeHero(Hero* h,const char filename[]);

/**
@brief creation d'une sauvegarde de terrain
@param Terrain* t, caractere constante filename
@return none
*/
void creerSauvegardeTerrain(Terrain* t,const char filename[]);

/**
@brief creation d'une sauvegarde des elements du niveau
@param element_niveau* en, entier nbrTerrain, caractere constante filename
@return none
*/
void creerSauvegardeElementNiveau(element_niveau* en,int nbrTerrain,const char filename[]);

/**
@brief creation d'une sauvegarde de niveau
@param Niveau* n, entier nbrNiveau, caractere constante filename
@return none
*/
void creerSauvegardeNiveau(Niveau* n,int nbrNiv,const char filename[]);

/**
@brief creation d'une sauvegarde de liste de niveau
@param liste_niveau* lt, caractere constante filename
@return none
*/
void creerSauvegardeListeNiveau(liste_niveau* ln,const char filename[]);

/**
@brief creation d'une sauvegarde des armes
@param arme* a,caractere constante filename
@return none
*/
void creerSauvegardeArme(arme* a,const char filename[]);

/**
@brief creation d'une sauvegarde de tableau d'arme
@param tableau_arme* Ta,caractere constante filename
@return none
*/
void creerSauvegardeTabArme(tableau_arme* Ta,const char filename[]);

/**
@brief creation d'une sauvegarde du tableau de monstre
@param tableau_monstre* Tm,caractere constante filename
@return none
*/
void creerSauvegardeTabMonstre(tableau_monstre* Tm,const char filename[]);

/**
@brief creation d'une sauvegarde d'un monstre
@param monstre* m,caractere constante filename
@return none
*/
void creerSauvegardeMonstre(monstre* m,const char filename[]);

/**
@brief chargement d'une sauvegarde
@param caractere constante filenameHero, caractere constante filenameNiv, caractere constante filenameArme,caractere constante filenameMonstre, jeu* j
@return none
*/
void chargerSauvegarde(const char filenameHero[],const char filenameNiv[],const char filenameArme[],const char filenameMonstre[],jeu* j);

#endif


